#!/bin/bash

DIRECTORY="$(dirname "$(dirname "$( cd "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )")")"

function error {
  echo -e "\\e[91m$1\\e[39m"
  exit 1
}

#use the error function often!
#If a certain command is necessary for installation to continue, then add this to the end of it:
# || error 'reason'
#example below:

# Get dependencies
"${DIRECTORY}/pkg-install" "zenity python3-pip yad" "$(dirname "$0")" || exit 1
sudo pip3 install imapclient || error "Failed to install imapclient!"

output="$(yad --form --center --width=400 --separator='\n' \
  --title="Email Checker Settings" --window-icon="$(dirname "$0")/icon-64.png" \
  --field='IMAP Server:' 'Outlook: outlook.office365.com  Gmail: imap.gmail.com' \
  --field='Email:' 'user@example.com' \
  --field='Password::H' '' \
  --field='Folder:' 'Inbox' \
  --field='Check interval::NUM' '60!10..240!10' \
  --button=OK!${DIRECTORY}/icons/check.png:0)"
button=$?
[ $button -ne 0 ] && error "User error: User exited."

echo "Output: ${output}EOO"

if [ -d ~/raspi-email-checker ];then
  gio trash ~/raspi-email-checker
  echo -e "\\e[33mWARNING: Moved the raspi-email-checker folder to trash instead of deleting.
The checkmail.py script inside may contain a password!\\e[39m"
fi

git clone https://github.com/Botspot/raspi-email-checker || error 'Failed to clone repository!'

#hostname
sed -i "s/hostname2replace/$(echo "$output" | sed "1q;d")/g" ~/raspi-email-checker/checkmail.py

#email
sed -i "s/email2replace/$(echo "$output" | sed "2q;d")/g" ~/raspi-email-checker/checkmail.py

#password
sed -i "s/password2replace/$(echo "$output" | sed "3q;d")/g" ~/raspi-email-checker/checkmail.py

#mailbox
sed -i "s/mailbox2replace/$(echo "$output" | sed "4q;d")/g" ~/raspi-email-checker/checkmail.py

#checkinterval
sed -i "s/checkinterval2replace/$(echo "$output" | sed "5q;d")/g" ~/raspi-email-checker/checkmail.py

#run on boot
mkdir -p ~/.config/autostart
echo "[Desktop Entry]
Name=Email Checker
Comment=Displays a pop-up window if your $(echo "$output" | sed "4q;d") folder contains any unread emails.
Exec=sudo python ${HOME}/raspi-email-checker/checkmail.py
X-GNOME-Autostart-enabled=true
Hidden=false
Icon=$(dirname "$0")/icon-64.png
NoDisplay=false" > ~/.config/autostart/checkmail.desktop

"${DIRECTORY}/etc/terminal-run" "echo -e 'If checkmail.py throws errors, you may have entered invalid information.\nUse this opportunity to test it out.\nFrom now on, checkmail.py will be run on every boot.' ; sudo python ${HOME}/raspi-email-checker/checkmail.py ; sleep infinity" 'Running Email Checker (checkmail.py)' &
